package noth.li.sgs.game;

import noth.li.sgs.card.BasicCard;
import noth.li.sgs.card.HolderCard;
import noth.li.sgs.card.equipment.ArmorCard;
import noth.li.sgs.card.equipment.HorseCard;
import noth.li.sgs.card.equipment.WeaponCard;
import noth.li.sgs.card.jinNang.NoYanShiJinNangCard;
import noth.li.sgs.card.jinNang.YanShiJinNangCard;
import noth.li.sgs.hero.BaseHero;
import noth.li.sgs.hero.shu.LiuBei;
import noth.li.sgs.hero.shu.ZhangFei;
import noth.li.sgs.utils.CommonUtil;

import java.util.*;

public class GameServer {

    //牌堆
    private static LinkedList<HolderCard> cards = new LinkedList<>();

    //弃牌堆
    private static LinkedList<HolderCard> throwCards = new LinkedList<>();

    //与玩家进行交互
    private static Scanner sc = new Scanner(System.in);

    //场上存活的武将
    private static LinkedList<BaseHero> aliveHeroes = new LinkedList<>();

    //游戏初始化时,对牌堆进行洗牌
    static {
        initCards();//初始化牌堆
        Collections.shuffle(cards);//清洗牌堆
    }

    public static void main(String[] args) throws Exception {
        System.out.println("======开始");
        LiuBei liuBei = new LiuBei();
        CommonUtil.getCards(cards, liuBei, 4);
        liuBei.setPosition(1);
        aliveHeroes.add(liuBei);
        ZhangFei zhangFei = new ZhangFei();
        CommonUtil.getCards(cards, zhangFei, 4);
        aliveHeroes.add(zhangFei);
        zhangFei.setPosition(2);

        while (true) {
            if(aliveHeroes.size() < 2) {
                break;
            }
            for (BaseHero h : aliveHeroes) {
                //展示当前存活的武将
                for(BaseHero h1 : aliveHeroes) {
                    System.out.println(h1.heroDesc(true));
                }
                //每个武将执行阶段之前,都要检测牌堆中是否有牌
                //如没有,则重置弃牌堆和摸牌堆
                if(CommonUtil.isEmpty(cards)) {
                    cards.addAll(throwCards);
                    throwCards.clear();
                    Collections.shuffle(cards);
                }
                //调用武将的阶段
                h.excuteAction(cards,throwCards,aliveHeroes,sc);
            }
        }
    }

    /**
     * 初始化牌堆
     */
    private static void initCards() {

        //方片牌
        cards.add(new WeaponCard(1, "A", "♦", "诸葛连弩", "锁定技，你使用【杀】无次数限制。", 1));
        cards.add(new NoYanShiJinNangCard(1, "A", "♦", "决斗", "由目标角色开始，其与你轮流打出【杀】，直到其中的一名角色未打出【杀】。然后未打出【杀】的角色受到另一名角色造成的1点伤害。"));
        cards.add(new WeaponCard(1, "A", "♦", "朱雀羽扇", "当你使用普通【杀】时，你可以将此【杀】改为火【杀】。", 4));
        cards.add(new BasicCard(2, "2", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(2, "2", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(2, "2", "♦", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new BasicCard(3, "3", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new NoYanShiJinNangCard(3, "3", "♦", "顺手牵羊", "对距离为1的角色使用，获得其手牌、装备区或者判定区的一张牌。"));
        cards.add(new BasicCard(3, "3", "♦", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new BasicCard(4, "4", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new NoYanShiJinNangCard(4, "4", "♦", "顺手牵羊", "对距离为1的角色使用，获得其手牌、装备区或者判定区的一张牌。"));
        cards.add(new BasicCard(4, "4", "♦", "火杀", "对你攻击范围内的一名其他角色使用，对其造成1点火焰伤害。"));
        cards.add(new BasicCard(5, "5", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new WeaponCard(5, "5", "♦", "贯石斧", "当你使用的【杀】被抵消时，你可以弃置两张牌，则此【杀】依然造成伤害。", 3));
        cards.add(new BasicCard(5, "5", "♦", "火杀", "对你攻击范围内的一名其他角色使用，对其造成1点火焰伤害。"));
        cards.add(new BasicCard(6, "6", "♦", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(6, "6", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(6, "6", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(7, "7", "♦", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(7, "7", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(7, "7", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(8, "8", "♦", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(8, "8", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(8, "8", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(9, "9", "♦", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(9, "9", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(9, "9", "♦", "酒", "1、出牌阶段对自己使用，令本回合下一张【杀】所造成的伤害+1（一回合限一次）。2、当你处于濒死状态时，对自己使用，立即回复1点体力。"));
        cards.add(new BasicCard(10, "10", "♦", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(10, "10", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(10, "10", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(11, "J", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(11, "J", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(11, "J", "♦", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(12, "Q", "♦", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new WeaponCard(12, "Q", "♦", "方天画戟", "锁定技，若你使用的【杀】是你最后的手牌，则此【杀】可以多选择两个目标。", 4));
        cards.add(new NoYanShiJinNangCard(12, "Q", "♦", "火攻", "对任一名有手牌的角色使用。目标角色展示一张手牌，然后若你能弃掉一张与所展示牌相同花色的手牌，则火攻对该角色造成1点火焰伤害。"));
        cards.add(new NoYanShiJinNangCard(12, "Q", "♦", "无懈可击", "抵消该锦囊对其指定的一名目标角色产生的效果。"));

        //梅花牌
        cards.add(new NoYanShiJinNangCard(1, "A", "♣", "决斗", "由目标角色开始，其与你轮流打出【杀】，直到其中的一名角色未打出【杀】。然后未打出【杀】的角色受到另一名角色造成的1点伤害。"));
        cards.add(new WeaponCard(1, "A", "♣", "诸葛连弩", "锁定技，你使用【杀】无次数限制。", 1));
        cards.add(new ArmorCard(1, "A", "♣", "白银狮子", "锁定技，当你受到大于1点的伤害时，你将伤害值改为1点；锁定技，当你失去装备区里的【白银狮子】后，你回复1点体力。"));
        cards.add(new BasicCard(2, "2", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new ArmorCard(2, "2", "♣", "八卦阵", "当你需要使用/打出【闪】时，你可以进行判定，若结果为红色，你视为使用/打出一张【闪】。"));
        cards.add(new ArmorCard(2, "2", "♣", "藤甲", "锁定技，【南蛮入侵】、【万箭齐发】和普通【杀】对你无效；当你受到火焰伤害时，你令伤害值+1。"));
        cards.add(new ArmorCard(2, "2", "♣", "仁王盾", "锁定技，黑色的【杀】对你无效。"));
        cards.add(new BasicCard(3, "3", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new NoYanShiJinNangCard(3, "3", "♣", "过河拆桥", "出牌阶段，对除你之外的任意一名角色使用。弃置该角色的一张牌。"));
        cards.add(new BasicCard(3, "3", "♣", "酒", "1、出牌阶段对自己使用，令本回合下一张【杀】所造成的伤害+1（一回合限一次）。2、当你处于濒死状态时，对自己使用，立即回复1点体力。"));
        cards.add(new BasicCard(4, "4", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new NoYanShiJinNangCard(4, "4", "♣", "过河拆桥", "出牌阶段，对除你之外的任意一名角色使用。弃置该角色的一张牌。"));
        cards.add(new YanShiJinNangCard(4, "4", "♣", "兵粮寸断", "出牌阶段，将【兵粮寸断】放置于目标角色判定区里，若判定的结果不为梅花，跳过其摸牌阶段；若判定结果为梅花，则进入正常的摸牌阶段。"));
        cards.add(new BasicCard(5, "5", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new HorseCard(5, "5", "♣", "的卢", "其他角色计算与你的距离时，始终+1。", 1));
        cards.add(new BasicCard(5, "5", "♣", "雷杀", "对你攻击范围内的一名其他角色使用，对其造成1点雷电伤害。"));
        cards.add(new BasicCard(6, "6", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new YanShiJinNangCard(6, "6", "♣", "乐不思蜀", "出牌阶段，对一名其他角色使用。将【乐不思蜀】放置于该角色的判定区里，若判定结果不为红桃，则跳过其出牌阶段。"));
        cards.add(new BasicCard(6, "6", "♣", "雷杀", "对你攻击范围内的一名其他角色使用，对其造成1点雷电伤害。"));
        cards.add(new BasicCard(7, "7", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new NoYanShiJinNangCard(7, "7", "♣", "南蛮入侵", "出牌阶段，对除你之外的其他角色使用，目标角色需打出【杀】，否则受到你造成的1点伤害。"));
        cards.add(new BasicCard(7, "7", "♣", "雷杀", "对你攻击范围内的一名其他角色使用，对其造成1点雷电伤害。"));
        cards.add(new BasicCard(8, "8", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(8, "8", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(8, "8", "♣", "雷杀", "对你攻击范围内的一名其他角色使用，对其造成1点雷电伤害。"));
        cards.add(new BasicCard(9, "9", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(9, "9", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(9, "9", "♣", "酒", "1、出牌阶段对自己使用，令本回合下一张【杀】所造成的伤害+1（一回合限一次）。2、当你处于濒死状态时，对自己使用，立即回复1点体力。"));
        cards.add(new BasicCard(10, "10", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(10, "10", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new NoYanShiJinNangCard(10, "10", "♣", "铁索连环", "出牌阶段，选择一至两名目标角色，横置他（他们）的武将牌；若目标角色已横置，则重置他（他们）。被横置的角色处于“连环状态”。重铸：出牌阶段。你可以从手里弃掉这张牌，然后摸一张牌。"));
        cards.add(new BasicCard(11, "J", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(11, "J", "♣", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new NoYanShiJinNangCard(11, "J", "♣", "铁索连环", "出牌阶段，选择一至两名目标角色，横置他（他们）的武将牌；若目标角色已横置，则重置他（他们）。被横置的角色处于“连环状态”。重铸：出牌阶段。你可以从手里弃掉这张牌，然后摸一张牌。"));
        cards.add(new NoYanShiJinNangCard(12, "Q", "♣", "借刀杀人", "出牌阶段，对装备区里有武器牌的一名其他角色使用。该角色需对其攻击范围内，由你指定的另一名角色使用一张【杀】，否则将装备区里的武器牌交给你。"));
        cards.add(new NoYanShiJinNangCard(12, "Q", "♣", "无懈可击", "抵消该锦囊对其指定的一名目标角色产生的效果。"));
        cards.add(new NoYanShiJinNangCard(12, "Q", "♣", "铁索连环", "出牌阶段，选择一至两名目标角色，横置他（他们）的武将牌；若目标角色已横置，则重置他（他们）。被横置的角色处于“连环状态”。重铸：出牌阶段。你可以从手里弃掉这张牌，然后摸一张牌。"));
        cards.add(new NoYanShiJinNangCard(13, "K", "♣", "借刀杀人", "出牌阶段，对装备区里有武器牌的一名其他角色使用。该角色需对其攻击范围内，由你指定的另一名角色使用一张【杀】，否则将装备区里的武器牌交给你。"));
        cards.add(new NoYanShiJinNangCard(13, "K", "♣", "无懈可击", "抵消该锦囊对其指定的一名目标角色产生的效果。"));
        cards.add(new NoYanShiJinNangCard(13, "K", "♣", "铁索连环", "出牌阶段，选择一至两名目标角色，横置他（他们）的武将牌；若目标角色已横置，则重置他（他们）。被横置的角色处于“连环状态”。重铸：出牌阶段。你可以从手里弃掉这张牌，然后摸一张牌。"));

        //红桃牌
        cards.add(new NoYanShiJinNangCard(1, "A", "♡", "桃园结义", "出牌阶段，对所有角色使用，所有角色各自回复一点体力。"));
        cards.add(new NoYanShiJinNangCard(1, "A", "♡", "万箭齐发", "出牌阶段，对所有其他角色使用，目标角色需打出【闪】，否则受到你造成的1点伤害。"));
        cards.add(new NoYanShiJinNangCard(1, "A", "♡", "无懈可击", "抵消该锦囊对其指定的一名目标角色产生的效果。"));
        cards.add(new BasicCard(2, "2", "♡", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(2, "2", "♡", "闪", "抵消目标【杀】的效果。"));
        cards.add(new NoYanShiJinNangCard(2, "2", "♡", "火攻", "对任一名有手牌的角色使用。目标角色展示一张手牌，然后若你能弃掉一张与所展示牌相同花色的手牌，则火攻对该角色造成1点火焰伤害。"));
        cards.add(new BasicCard(3, "3", "♡", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new NoYanShiJinNangCard(3, "3", "♡", "五谷丰登", "出牌阶段，对所有角色使用。你从牌堆顶亮出等同于现存角色数量的牌，每名目标角色选择并获得其中的一张。"));
        cards.add(new NoYanShiJinNangCard(3, "3", "♡", "火攻", "对任一名有手牌的角色使用。目标角色展示一张手牌，然后若你能弃掉一张与所展示牌相同花色的手牌，则火攻对该角色造成1点火焰伤害。"));
        cards.add(new BasicCard(4, "4", "♡", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new NoYanShiJinNangCard(4, "4", "♡", "五谷丰登", "出牌阶段，对所有角色使用。你从牌堆顶亮出等同于现存角色数量的牌，每名目标角色选择并获得其中的一张。"));
        cards.add(new BasicCard(4, "4", "♡", "火杀", "对你攻击范围内的一名其他角色使用，对其造成1点火焰伤害。"));
        cards.add(new WeaponCard(5, "5", "♡", "麒麟弓", "当你使用【杀】对目标角色造成伤害时，你可以弃置其装备区里的一张坐骑牌。", 5));
        cards.add(new HorseCard(5, "5", "♣", "赤兔", "锁定技，玩家计算的与其他角色的距离-1。", -1));
        cards.add(new BasicCard(5, "5", "♡", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new BasicCard(6, "6", "♡", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new YanShiJinNangCard(6, "6", "♡", "乐不思蜀", "出牌阶段，对一名其他角色使用。将【乐不思蜀】放置于该角色的判定区里，若判定结果不为红桃，则跳过其出牌阶段。"));
        cards.add(new BasicCard(6, "6", "♡", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new BasicCard(7, "7", "♡", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new NoYanShiJinNangCard(7, "7", "♡", "无中生有", "出牌阶段，对自己使用。摸两张牌。"));
        cards.add(new BasicCard(7, "7", "♡", "火杀", "对你攻击范围内的一名其他角色使用，对其造成1点火焰伤害。"));
        cards.add(new BasicCard(8, "8", "♡", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new NoYanShiJinNangCard(8, "8", "♡", "无中生有", "出牌阶段，对自己使用。摸两张牌。"));
        cards.add(new BasicCard(8, "8", "♡", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(9, "9", "♡", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new NoYanShiJinNangCard(9, "9", "♡", "无中生有", "出牌阶段，对自己使用。摸两张牌。"));
        cards.add(new BasicCard(9, "9", "♡", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(10, "10", "♡", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(10, "10", "♡", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(10, "10", "♡", "火杀", "对你攻击范围内的一名其他角色使用，对其造成1点火焰伤害。"));
        cards.add(new BasicCard(11, "J", "♡", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new NoYanShiJinNangCard(11, "J", "♡", "无中生有", "出牌阶段，对自己使用。摸两张牌。"));
        cards.add(new BasicCard(11, "J", "♡", "闪", "抵消目标【杀】的效果。"));
        cards.add(new BasicCard(12, "Q", "♡", "桃", "使你或者一名处于濒死状态的角色回复一点体力。"));
        cards.add(new NoYanShiJinNangCard(12, "Q", "♡", "过河拆桥", "出牌阶段，对除你之外的任意一名角色使用。弃置该角色的一张牌。"));
        cards.add(new BasicCard(12, "Q", "♡", "闪", "抵消目标【杀】的效果。"));
        cards.add(new YanShiJinNangCard(12, "Q", "♡", "闪电", "出牌阶段，将【闪电】横置于你自己的判定区里。回合判定阶段，进行判定；若判定结果为黑桃 2～9之间，则目标角色受到无来源的3点雷属性伤害，将闪电弃置。否则，将【闪电】移动到当前目标角色下家（闪电的目标变为该角色）的判定区。"));
        cards.add(new BasicCard(13, "K", "♡", "闪", "抵消目标【杀】的效果。"));
        cards.add(new HorseCard(13, "K", "♡", "爪黄飞电", "其他角色计算与你的距离时，始终+1。", 1));
        cards.add(new NoYanShiJinNangCard(13, "K", "♡", "无懈可击", "抵消该锦囊对其指定的一名目标角色产生的效果。"));

        //黑桃牌
        cards.add(new NoYanShiJinNangCard(1, "A", "♤", "决斗", "由目标角色开始，其与你轮流打出【杀】，直到其中的一名角色未打出【杀】。然后未打出【杀】的角色受到另一名角色造成的1点伤害。"));
        cards.add(new YanShiJinNangCard(1, "A", "♤", "闪电", "出牌阶段，将【闪电】横置于你自己的判定区里。回合判定阶段，进行判定；若判定结果为黑桃 2～9之间，则目标角色受到无来源的3点雷属性伤害，将闪电弃置。否则，将【闪电】移动到当前目标角色下家（闪电的目标变为该角色）的判定区。"));
        cards.add(new WeaponCard(1, "A", "♤", "古锭刀", "当你使用【杀】对目标角色造成伤害时，若其没有手牌，此伤害+1。", 2));
        cards.add(new WeaponCard(2, "2", "♤", "雌雄双股剑", "当你使用【杀】指定与你性别不同的一个目标后，你可以令其选择一项：1.弃置一张手牌；2.令你摸一张牌。", 2));
        cards.add(new ArmorCard(2, "2", "♤", "八卦阵", "当你需要使用/打出【闪】时，你可以进行判定，若结果为红色，你视为使用/打出一张【闪】。"));
        cards.add(new ArmorCard(2, "2", "♤", "藤甲", "锁定技，【南蛮入侵】、【万箭齐发】和普通【杀】对你无效；当你受到火焰伤害时，你令伤害值+1。"));
        cards.add(new WeaponCard(2, "2", "♤", "寒冰剑", "当你使用【杀】对目标角色造成伤害时，若该角色有牌，你可以防止此伤害，改为依次弃置其两张牌。", 2));
        cards.add(new NoYanShiJinNangCard(3, "3", "♤", "过河拆桥", "出牌阶段，对除你之外的任意一名角色使用。弃置该角色的一张牌。"));
        cards.add(new NoYanShiJinNangCard(3, "3", "♤", "顺手牵羊", "对距离为1的角色使用，获得其手牌、装备区或者判定区的一张牌。"));
        cards.add(new BasicCard(3, "3", "♤", "酒", "1、出牌阶段对自己使用，令本回合下一张【杀】所造成的伤害+1（一回合限一次）。2、当你处于濒死状态时，对自己使用，立即回复1点体力。"));
        cards.add(new NoYanShiJinNangCard(4, "4", "♤", "过河拆桥", "出牌阶段，对除你之外的任意一名角色使用。弃置该角色的一张牌。"));
        cards.add(new NoYanShiJinNangCard(4, "4", "♤", "顺手牵羊", "对距离为1的角色使用，获得其手牌、装备区或者判定区的一张牌。"));
        cards.add(new BasicCard(4, "4", "♤", "雷杀", "对你攻击范围内的一名其他角色使用，对其造成1点雷电伤害。"));
        cards.add(new WeaponCard(5, "5", "♤", "青龙偃月刀", "当你使用的【杀】被目标角色使用的【闪】抵消时，你可以对其使用【杀】（无距离限制）。", 3));
        cards.add(new HorseCard(5, "5", "♤", "绝影", "其他角色计算与你的距离时，始终+1。", 1));
        cards.add(new BasicCard(5, "5", "♤", "雷杀", "对你攻击范围内的一名其他角色使用，对其造成1点雷电伤害。"));
        cards.add(new YanShiJinNangCard(6, "6", "♤", "乐不思蜀", "出牌阶段，对一名其他角色使用。将【乐不思蜀】放置于该角色的判定区里，若判定结果不为红桃，则跳过其出牌阶段。"));
        cards.add(new WeaponCard(6, "6", "♤", "青釭剑", "锁定技，当你使用【杀】指定一个目标后，你令其防具无效。", 2));
        cards.add(new BasicCard(6, "6", "♤", "雷杀", "对你攻击范围内的一名其他角色使用，对其造成1点雷电伤害。"));
        cards.add(new BasicCard(7, "7", "♤", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new NoYanShiJinNangCard(7, "7", "♤", "南蛮入侵", "出牌阶段，对除你之外的其他角色使用，目标角色需打出【杀】，否则受到你造成的1点伤害。"));
        cards.add(new BasicCard(7, "7", "♤", "雷杀", "对你攻击范围内的一名其他角色使用，对其造成1点雷电伤害。"));
        cards.add(new BasicCard(8, "8", "♤", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(8, "8", "♤", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(8, "8", "♤", "雷杀", "对你攻击范围内的一名其他角色使用，对其造成1点雷电伤害。"));
        cards.add(new BasicCard(9, "9", "♤", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(9, "9", "♤", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(9, "9", "♤", "酒", "1、出牌阶段对自己使用，令本回合下一张【杀】所造成的伤害+1（一回合限一次）。2、当你处于濒死状态时，对自己使用，立即回复1点体力。"));
        cards.add(new BasicCard(10, "10", "♤", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new BasicCard(10, "10", "♤", "杀", "对你攻击范围内的一名其他角色使用，对其造成1点伤害。"));
        cards.add(new YanShiJinNangCard(10, "10", "♤", "兵粮寸断", "出牌阶段，将【兵粮寸断】放置于目标角色判定区里，若判定的结果不为梅花，跳过其摸牌阶段；若判定结果为梅花，则进入正常的摸牌阶段。"));
        cards.add(new NoYanShiJinNangCard(11, "J", "♤", "顺手牵羊", "对距离为1的角色使用，获得其手牌、装备区或者判定区的一张牌。"));
        cards.add(new NoYanShiJinNangCard(11, "J", "♤", "无懈可击", "抵消该锦囊对其指定的一名目标角色产生的效果。"));
        cards.add(new NoYanShiJinNangCard(11, "J", "♤", "铁索连环", "出牌阶段，选择一至两名目标角色，横置他（他们）的武将牌；若目标角色已横置，则重置他（他们）。被横置的角色处于“连环状态”。重铸：出牌阶段。你可以从手里弃掉这张牌，然后摸一张牌。"));
        cards.add(new NoYanShiJinNangCard(12, "Q", "♤", "过河拆桥", "出牌阶段，对除你之外的任意一名角色使用。弃置该角色的一张牌。"));
        cards.add(new WeaponCard(12, "Q", "♤", "丈八蛇矛", "当你需要使用或打出一张【杀】时，你可以将两张手牌当一张【杀】来使用或打出。", 3));
        cards.add(new NoYanShiJinNangCard(12, "Q", "♤", "铁索连环", "出牌阶段，选择一至两名目标角色，横置他（他们）的武将牌；若目标角色已横置，则重置他（他们）。被横置的角色处于“连环状态”。重铸：出牌阶段。你可以从手里弃掉这张牌，然后摸一张牌。"));
        cards.add(new NoYanShiJinNangCard(13, "K", "♤", "南蛮入侵", "出牌阶段，对除你之外的其他角色使用，目标角色需打出【杀】，否则受到你造成的1点伤害。"));
        cards.add(new HorseCard(13, "K", "♣", "大宛", "锁定技，玩家计算的与其他角色的距离-1。", -1));
        cards.add(new NoYanShiJinNangCard(13, "K", "♤", "无懈可击", "抵消该锦囊对其指定的一名目标角色产生的效果。"));
    }
}
